{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Hastie Data - 2 Class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_hastie_10_2\n",
    "\n",
    "x, y = make_hastie_10_2(n_samples=6000, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5031666666666667"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(y>=0).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "x_train, x_test, y_train, y_test  = train_test_split(x, y, test_size=0.25, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "clf = RandomForestClassifier(\n",
    "    n_estimators=100,\n",
    "    oob_score=True,\n",
    "    random_state=42,\n",
    "    n_jobs=-1,\n",
    ")\n",
    "\n",
    "clf.fit(x_train, y_train)\n",
    "y_pred_proba = clf.predict_proba(x_test)[:,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1500,)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_proba.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve, auc\n",
    "\n",
    "fpr, tpr, thr = roc_curve(y_test, y_pred_proba)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>True Positive Rate</th>\n",
       "      <th>False Positive Rate</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Threshold</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0.98</th>\n",
       "      <td>0.001326</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.97</th>\n",
       "      <td>0.006631</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.96</th>\n",
       "      <td>0.010610</td>\n",
       "      <td>0.001340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.95</th>\n",
       "      <td>0.015915</td>\n",
       "      <td>0.001340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.94</th>\n",
       "      <td>0.023873</td>\n",
       "      <td>0.002681</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.04</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.762735</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.03</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.800268</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.02</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.845845</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.01</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.912869</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.00</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>97 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           True Positive Rate  False Positive Rate\n",
       "Threshold                                         \n",
       "0.98                 0.001326             0.000000\n",
       "0.97                 0.006631             0.000000\n",
       "0.96                 0.010610             0.001340\n",
       "0.95                 0.015915             0.001340\n",
       "0.94                 0.023873             0.002681\n",
       "...                       ...                  ...\n",
       "0.04                 1.000000             0.762735\n",
       "0.03                 1.000000             0.800268\n",
       "0.02                 1.000000             0.845845\n",
       "0.01                 1.000000             0.912869\n",
       "0.00                 1.000000             1.000000\n",
       "\n",
       "[97 rows x 2 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_thr = pd.DataFrame(\n",
    "    {\n",
    "        'Threshold': thr,\n",
    "        'True Positive Rate': tpr,\n",
    "        'False Positive Rate': fpr,\n",
    "    }\n",
    ")\n",
    "\n",
    "df_thr[\n",
    "   df_thr['Threshold'] < 1\n",
    "].set_index('Threshold')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "auc_values = auc(fpr, tpr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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1xVXXMG77757wQoZoSA02o1hLjMzk6FDh7rVlSpVioULFwbtcFelVGg7cOAAvXv35qeffsqpC8UkBprIgsLatWs5ePCgW90777zD9ddf71BESqlwtn37duLi4ti5cyfz58/HGON0SEWiiSwIfPrpp27lzp0706lTJ4eiUUqFs9WrV9O/f3+OHTvGFVdcweTJk4NquqmLoefIHJaVlcVHH33kVte5c2eHolFKhbMlS5bw+uuvk5WVxe23387gwYMpXry402EVmSYyh61evZp9+/bllMuUKcOdd97pYERKqXD01ltv8a9//QuAHj168MQTT4R8Syybdi06bPHixW7lu+++m9KlSzsUjVIqXF111VWUKlWK+Ph4evToETZJDLRF5qgjR45c0K348MMPOxSNUircZGRk5HQdtmzZkn//+9+UL1/e4ah8T1tkDho7diwpKSk55UqVKnHzzTc7GJFSKlz88ccfPPnkk6xcuTKnLhyTGGgic8zq1at566233OpeeOEFvfhZKVVkGzZs4Pnnn2fv3r18+OGHIT+8viCayBywdetWunXr5vbiatSoEc8884yDUSmlwsHXX3/Niy++yKlTp7jxxhuZOHFiWJ0Py42eIwuwPXv28NBDD3Hy5Em3+gkTJmhrTCl10YwxLFy4kLlz5wLw4IMP0qdPn5CZ+LcoNJEF0LFjx3jooYfchtsDjBgxQi+AVkoVyZw5c3j33XcREeLi4njkkUecDilgwj9VB4nvv/+eW265hR07drjV9+rVixdffNGhqJRS4aJjx47ExsYyevToiEpioC0yvztz5gyjR49mzpw5F9z2wAMPMGHChLDvv1ZK+UdqamrOdadNmjRh0aJFEXkdqrbI/OiHH36gbdu2uSaxdu3aMXv2bF3xWSl1UXbu3MkTTzzhthBvJCYx0ETmNz/99BOdO3cmKSnpgtueeeYZ3n//fUqUKBH4wJRSIe/nn3+mb9++HD58mGXLloX98PqCaNein7z//vtkZma61dWrV4/p06fTtm1bh6JSSoW6pUuXMnXqVLKysujUqRNDhgyJ+NMTmsj8ZNeuXW7lRx99lMmTJ1OmTBmHIlJKhbKsrCzmzJnDokWLAOjevTtPPfVUxCcx0ETmN7///rtbOS4uTpOYUuqizZgxg8WLFxMVFcXAgQO59957nQ4paOg5Mj/IzMxk7969bnWX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bdu2ERcXx+rVq5k9e7bT4SilVNAKi0QWbl2L33//Pf379+f48eNcddVVPP/8806HpJRSQSsszpGFU4vso48+4o033sAYw1133cXAgQMpXry402EppVTQCotEFg4tMmMM06dPZ/HixQD07NmTxx57DHveSaWUUnkIi0QWDi0yEaF48eIUK1aMIUOGcPvttzsdklJKhYSwSGTh0CID6NWrF7fddhsNGjRwOhSllAoZYZHIqlat6nQIFyUpKYmpU6cyatQoKlWqRFRUlCaxMGfM/2/vzqOjqrJHj393FSEJiKkACpgJwzwakFFQaDAOiBgEn4A8RFuN2CAiQUF4IKCCQBOg25EHiDKKNqPM8lPRZgqDoMyNEIgEaEIYEoZgzu+PqpQVyFCBkKpK9metrFV176179j2pZNc599Q5htTUVDIzMz0dyg0LDAzk9OnTng7DJ2hdZWexWLDZbIV+y6RYJLLg4GBPh1BgO3bsYNiwYVy4cIFp06YxaNAgT4ekikBqaiplypTR+TFViXTx4kX27t3LXXfdRVBQUKGd1+eH32etw+VLVq9eTVxcHBcuXKBVq1b069fP0yGpIpKZmalJTJVYWauULF++3DnRQ2Hw+URms9k8HYLbjDF8/vnnvPfee1y9epUuXbowevRoAgICPB2aUkoVCRHBarWyY8eOQjunbzVlcuAricwYw7hx41ixYgUiwt/+9je6du3q6bCUUqrIiQgZGRmFdj6fb5H5yv0xEaFy5cr4+/szevRoTWKqRFu/fj1169b1dBg+41bX14ABAxg3bpzz+bRp06hRowYhISGkpKQQEhLC4cOHb1n5N8vnW2TensiMMc4ROr169aJ9+/aEhoZ6OCqlrtegQQNOnTqF1WqlbNmytG/fnvHjx/v8Ekk2m40yZco4/w6tViuJiYlFVv769euJjY1l9+7deR63detWxo4dy6ZNm5wjmJ9//nl69ux5y2OMj493Ps7IyGDo0KGsWbOGBg0aAJCUlHTLY7gZPt8iu/322z0dQq72799PbGwsJ0+eBOytMk1iypvNmzePpKQk1q9fz86dO7P9g/NlP/74I0lJSSQlJd1QErt69eotiOpPmzdvplOnTrRq1Yrt27fz22+/MXHiRNauXXtLy83JyZMnuXTpEnXq1Lnpc93qesvi84nMarV6OoQcbdiwgf79+7N//35mzZrl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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(6, 6), sharey=False)\n",
    "\n",
    "pd.DataFrame(\n",
    "    {\n",
    "        'FPR': fpr,\n",
    "        'TPR': tpr\n",
    "    }\n",
    ").set_index('FPR')['TPR'].plot(\n",
    "    title=f'Receiver Operating Characteristic (ROC)\\nAUC = {auc_values:.2f}',\n",
    "    label='Random Forest Classifier',\n",
    "    kind='line',\n",
    "    xlim=(0,1),\n",
    "    ylim=(0,1),\n",
    "    color='k',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "ax.plot(\n",
    "    [0, 1], [0, 1], \n",
    "    linestyle='--', \n",
    "    lw=2, color='k',\n",
    "    label='Chance', alpha=.8\n",
    ")\n",
    "\n",
    "\n",
    "ax.set_xlabel('False Positive Rate')\n",
    "ax.set_ylabel('True Positive Rate')\n",
    "\n",
    "ax.legend(ncol=1, fontsize='large', shadow=True)\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ROC Curves"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC @ bootstrap = True; 0.939\n",
      "AUC @ bootstrap = False; 0.928\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import roc_curve, auc\n",
    "\n",
    "bootstrap_options = [True, False]\n",
    "\n",
    "for bootstrap_option in bootstrap_options:\n",
    "    \n",
    "    clf = RandomForestClassifier(\n",
    "        n_estimators=200,\n",
    "        bootstrap=bootstrap_option,\n",
    "        n_jobs=-1,\n",
    "    )\n",
    "\n",
    "    clf.fit(x_train, y_train)\n",
    "    y_pred_proba = clf.predict_proba(x_test)[:,1]\n",
    "    \n",
    "    fpr, tpr, thr = roc_curve(y_test, y_pred_proba)\n",
    "\n",
    "    auc_values = auc(fpr, tpr)\n",
    "    \n",
    "    print(f'AUC @ bootstrap = {bootstrap_option}; {auc_values:.3f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:47: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(6, 6), sharey=False)\n",
    "\n",
    "for i, bootstrap_option in enumerate(bootstrap_options):\n",
    "    \n",
    "    clf = RandomForestClassifier(\n",
    "        n_estimators=100,\n",
    "        bootstrap=bootstrap_option,\n",
    "        n_jobs=-1,\n",
    "    )\n",
    "\n",
    "    clf.fit(x_train, y_train)\n",
    "    y_pred_proba = clf.predict_proba(x_test)[:,1]\n",
    "    \n",
    "    fpr, tpr, thr = roc_curve(y_test, y_pred_proba)\n",
    "\n",
    "    auc_values = auc(fpr, tpr)\n",
    "    \n",
    "    pd.DataFrame(\n",
    "        {\n",
    "            'FPR': fpr,\n",
    "            'TPR': tpr\n",
    "        }\n",
    "    ).set_index('FPR')['TPR'].plot(\n",
    "        title=f'ROC Curve',\n",
    "        label=f'bootstrap={bootstrap_option}',\n",
    "        kind='line',\n",
    "        xlim=(0,1),\n",
    "        ylim=(0,1),\n",
    "        color='k',\n",
    "        linestyle=['-', ':'][i],\n",
    "        ax=ax\n",
    "    )\n",
    "\n",
    "    if i == 1:\n",
    "        ax.plot(\n",
    "            [0, 1], [0, 1], \n",
    "            linestyle='--', \n",
    "            lw=2, color='k',\n",
    "            label='Chance', alpha=.8\n",
    "        )\n",
    "\n",
    "    ax.legend(ncol=1, fontsize='large', shadow=True)\n",
    "\n",
    "    ax.set_xlabel('False Positive Rate')\n",
    "    ax.set_ylabel('True Positive Rate')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# GradientBoostingClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:51: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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9OjR9O7d29VhKaWcYMaMGRw9epSFCxe6OhRVRXpp0cYYw4QJE9i4cSO+vr7MmjVLk5hS1dDy5ct56KGHCA4O5u677yYuLo4tW7a4Oix1E7RFZiMiREdHk5GRwcyZM+2jOCulqo+3336b+fPn8+abb/LII49Qu3ZtNmzYwNq1a6lbt66rw1M3qMa3yEpOAd6rVy8WLVqkSUypaujs2bPMmDGDuXPn0qdPH+rVq4e3tze9evXijTfeAKy3F4YNG0ZISAjdunVjz5499u2Tk5Pp2LEjISEhdO3alTVr1tjXLVmyhMcee4zJkycTFhZG+/btWb9+vX19Tk4Ow4cPp1WrVoSFhfHcc8/Z13355Zf2ect69uzJvn37nFAb1UuNbpFt2rSJ+fPnM2fOHPs03fqtTKlb66GHHip33ejRo+nTpw8Aq1ev5s033yy37Ndff21/P3ToUA4dOnTd8ors2LGDS5cuVXjLYN26dXz66ae8++67TJs2jXHjxrFhwwYAwsPDWbduHXfddRd//vOfGTZsGF26dLHPCbZz506effZZjhw5wieffMLIkSM5cOAAIsKwYcOoV68eW7dupV69emzbtg2Af//734wYMYLPPvuMe+65h88//5xnn32WnTt34uPj49B5qRraIjPG8NlnnzFlyhRycnIc/kNQSnmuM2fO0LBhQ2rVKv/7e7du3ejZsycWi4WEhIRSraOYmBgaN26Ml5cX/fr1IyIigl27dtnXN23alBdeeAGLxcKzzz7LyZMn+eGHHzh58iTr168nOTmZwMBAvL297ZNsLlq0iIEDB9K5c2csFgvPPfccPj4+7Nix4/ZVRDVU41pkV65c4a233mLVqlUADBs2jGeeecbFUSlVfTn6RbFPnz721lllbqRn4R133EF2djaXL18uN5nddddd9ve+vr5cunTJXn7ZsmW888479jm58vLyyM7OLnPbq1d28vLyyMnJoUGDBgQGBl53vIyMDJYtW1bqfIqKijh58mSVz68mq1GJLD8/n6lTp9oH/p0wYQIPP/ywq8NSSjlBly5d8PHx4S9/+Qt9+/at0rbHjx9n1KhRrFq1ivvuuw+LxWJvVVUmODiYnJwccnNzr0tmwcHBjBkzxj5Rp7oxNebSYnFxMePGjWPbtm34+fkxd+5cTWJK1SABAQG88sorjB07li+++IL8/HyKiopYv349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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(6, 6), sharey=False)\n",
    "\n",
    "subsample_options = [0.5, 1.0]\n",
    "\n",
    "for i, subsample_option in enumerate(subsample_options):\n",
    "    \n",
    "    clf = GradientBoostingClassifier(\n",
    "        n_estimators=100,\n",
    "        learning_rate=0.01,\n",
    "        subsample=subsample_option,\n",
    "    )\n",
    "\n",
    "    clf.fit(x_train, y_train)\n",
    "    y_pred_proba = clf.predict_proba(x_test)[:,1]\n",
    "    \n",
    "    fpr, tpr, thr = roc_curve(y_test, y_pred_proba)\n",
    "\n",
    "    auc_values = auc(fpr, tpr)\n",
    "    \n",
    "    pd.DataFrame(\n",
    "        {\n",
    "            'FPR': fpr,\n",
    "            'TPR': tpr\n",
    "        }\n",
    "    ).set_index('FPR')['TPR'].plot(\n",
    "        title=f'ROC Curve',\n",
    "        label=f'subsample={subsample_option}',\n",
    "        kind='line',\n",
    "        xlim=(0,1),\n",
    "        ylim=(0,1),\n",
    "        color='k',\n",
    "        linestyle=['-', ':'][i],\n",
    "        ax=ax\n",
    "    )\n",
    "\n",
    "    if i == 1:\n",
    "        ax.plot(\n",
    "            [0, 1], [0, 1], \n",
    "            linestyle='--', \n",
    "            lw=2, color='k',\n",
    "            label='Chance', alpha=.8\n",
    "        )\n",
    "\n",
    "    ax.legend(ncol=1, fontsize='large', shadow=True)\n",
    "\n",
    "    ax.set_xlabel('False Positive Rate')\n",
    "    ax.set_ylabel('True Positive Rate')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
